﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Arch.Intercep;

namespace Arch.Aspects
{
    [AttributeUsage(AttributeTargets.Method)]
    public class CreatingAttribute : AspectBehaviorAttribute
    {
        public CreatingAttribute() : base(ActionTarget.Creating) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class CreatedAttribute : AspectBehaviorAttribute
    {
        public CreatedAttribute() : base(ActionTarget.Created) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class UpdatingAttribute : AspectBehaviorAttribute
    {
        public UpdatingAttribute() : base(ActionTarget.Updating) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class UpdatedAttribute : AspectBehaviorAttribute
    {
        public UpdatedAttribute() : base(ActionTarget.Updated) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class DeletingAttribute : AspectBehaviorAttribute
    {
        public DeletingAttribute() : base(ActionTarget.Deleting) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class DeletedAttribute : AspectBehaviorAttribute
    {
        public DeletedAttribute() : base(ActionTarget.Deleted) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class LoadingAttribute : AspectBehaviorAttribute
    {
        public LoadingAttribute() : base(ActionTarget.Loading) { }
    }

    [AttributeUsage(AttributeTargets.Method)]
    public class LoadedAttribute : AspectBehaviorAttribute
    {
        public LoadedAttribute() : base(ActionTarget.Loaded) { }
    }
}
